package com.qd.system.mapper;

import com.qd.system.treecl.TreeClDTO;
import com.qd.system.treecl.TreeClModel;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sjk
 * Date: 2020-10-26
 * Time: 10:13
 *
 * @author sjk
 */
public interface TreeMapper {

    /**
     * 查询原始表数据
     *
     * @param dto 查询参数
     * @return 数据列表，id，pid，name
     */
    List<Map<String, String>> getAllTree(@Param("dto") TreeClDTO dto);

    /**
     * 查询原始表数据，按id查询，单个
     *
     * @param dto 查询参数
     * @return 数据列表，id，pid，name
     */
    Map<String, String> getTree(@Param("dto") TreeClDTO dto);


    /**
     * 查询cl表数据
     *
     * @param dto 查询参数
     * @return 数据列表，id，pid，name
     */
    List<Map<String, Object>> getClTreeList(@Param("dto") TreeClDTO dto);

    /**
     * 查询cl表数据，按父级id查询
     *
     * @param dto 查询参数
     * @return 数据列表，id，pid，name
     */
    List<Map<String, Object>> getClTreeListByPid(@Param("dto") TreeClDTO dto);

    /**
     * 删除cl表数据
     *
     * @param dto 按id删除
     * @return 删除成功条数
     */
    int deleteTreeCl(@Param("dto") TreeClDTO dto);

    /**
     * 删除cl表数据
     *
     * @param dto 全量删除
     * @return 删除成功条数
     */
    int deleteTreeClAll(@Param("dto") TreeClDTO dto);

    /**
     * 删除cl表数据
     *
     * @param dto 参数
     * @param ids 需要删除逇id集合
     * @return 删除成功条数
     */
    int deleteTreeClByIds(@Param("dto") TreeClDTO dto, @Param("ids") String[] ids);

    /**
     * 批量添加
     *
     * @param dto  参数
     * @param list 需要添加的数据
     * @return 成功条数
     */
    int saveBatchTreeCl(@Param("dto") TreeClDTO dto, @Param("mList") List<TreeClModel> list);

    /**
     * 批量更新
     *
     * @param dto  参数
     * @param list 需要添加的数据
     * @return 成功条数
     */
    int updateBatchTreeCl(@Param("dto") TreeClDTO dto, @Param("mList") List<TreeClModel> list);
}
